Perl 6 - the future is here, just unevenly distributed

IRC log for #salt, 2015-10-01

| Channels | #salt index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:03 parapov joined #salt
00:10 subsignal joined #salt
00:10 baweaver joined #salt
00:19 zmalone joined #salt
00:20 baweaver joined #salt
00:26 Val_ Are u here whytewolf ?
00:26 Val_ I found a part of answer
00:26 TheoSLC joined #salt
00:27 parapov joined #salt
00:27 Val_ The problem, I thing, is when I use '*' for highstate
00:27 Ryan_Lane basepi: just live-hacked this bad-boy into our stable branch https://github.com/saltstack/salt/pull/27585
00:28 Ryan_Lane I'm glad I test our upgrades for days on our staging nodes first :D
00:29 Val_ because when i  do "cmd.run 'salt-call state.highstate' " or "salt-call state.highstate" it is speed
00:29 Val_ but when i do "salt '*' state.highstate", its sucks .
00:30 KyleG joined #salt
00:30 KyleG joined #salt
00:32 Ryan_Lane Val_: when you use '*' it's goingt to cause all nodes to do a highstate at the same time
00:32 Ryan_Lane which will put a lot of load on the server
00:36 Val_ Have u an idea why '*' test.ping or '*' cmd.run is really speedy, but '*' highstate take over 300 secondss (only on 2015.8.0)
00:37 Ryan_Lane Val_: highstate is a lot more load
00:37 Ryan_Lane the master has to find and deliver every file needed by every node
00:38 Ryan_Lane you don't have that issue with 2015.5?
00:38 Val_ Nop !
00:39 Ryan_Lane oh. well, that's interesting
00:39 Val_ on 2015.8 I have 84 states
00:39 Val_ on 2015.5 i was 100+ state
00:39 Val_ and it take over half time to '*' highstate
00:39 Val_ Oo
00:39 Val_ I've open it : https://groups.google.com/forum/#!topic/salt-users/rPMtIKqtdaE
00:40 pravka joined #salt
00:40 Val_ Its look like an AsyncZeroMQReqChannel problem ?!
00:40 Val_ because on older version, i don't see any AsyncZeroMQReqChannel on debug
00:42 Val_ its really strange, because if I do ' app1 state.highstate' it take 20s
00:42 Val_ and if I do '*' state.highstate, the first output take 250s to run et the other get +10s max
00:43 zmalone joined #salt
00:43 Val_ salt app1 state.highstate   => Total run time:   26.302 s
00:43 Val_ salt '*' state.highstate => Total run time:  246.071 s (first) , Total run time:  249.662 s (second) ....
00:55 jodv joined #salt
01:01 armguy joined #salt
01:12 pm90_ joined #salt
01:14 tristianc joined #salt
01:14 zmalone joined #salt
01:15 dthom91 joined #salt
01:16 dthom911 joined #salt
01:18 jalbretsen joined #salt
01:20 JDiPierro joined #salt
01:20 tristianc joined #salt
01:23 dthom91 joined #salt
01:24 otter768 joined #salt
01:34 jalaziz joined #salt
01:36 smerp joined #salt
01:36 CryptoMer joined #salt
01:37 CryptoMer Evening everyone. I've been toying with populating a monitoring system's config file, using data from the salt mine. However, I'm running into a problem when the mine data isn't present when my state runs. Is there a good way of 'requiring' a mine.update inside of a state?
01:38 CryptoMer The use case is 'System comes online, triggers an event, which fires a reactor. The reactor then calls a state which populates the host's config file on the monitoring server, using data from the salt mine.
01:39 kermit joined #salt
01:45 breakingmatter joined #salt
01:45 aparsons joined #salt
01:46 rpx joined #salt
01:49 ALLmightySPIFF joined #salt
01:50 edrocks joined #salt
01:51 edrocks anyone know why `- require: pkg: python-pip` wouldn't work in a state? full sls http://pastebin.com/mLphuT2F
01:51 dthom91 joined #salt
01:51 CryptoMer edrocks: it's looking for a pkg state definition called 'python-pip'
01:52 CryptoMer In that instance, you would need to have a state defined as 'python-pip: pkg.installed: - name: python-pip'
01:52 CryptoMer and then you could use the require clause
01:52 edrocks is there a way to use pkg.installed in a require without an extra state file?
01:52 edrocks or is that the standard way?
01:53 CryptoMer That is the standard way, *as I know it*... ;)
01:53 CryptoMer I try to modularize things, so I
01:53 edrocks I'll try that. thanks for the instant response!
01:53 CryptoMer I'll put all of my packages in individual states, and then include those state files if I need to 'require' them
01:53 CryptoMer np, good luck.
01:53 dthom91 joined #salt
01:56 catpigger joined #salt
02:06 edrocks are there any docs on require pkg? Is it related to pkg.installed in any way?
02:08 Smerg Sorry all, I am new to salt and I am having trouble getting my first state to work. Here is a paste of my sls and config data: https://gist.github.com/anonymous/a36bf1c343fbf2e5cec2
02:09 Smerg When i run salt '*' state.highstate my test minion returns state: -no, name: states, function: none, comment: No Top file or external nodes data matches found
02:09 Smerg I am probably doing something silly but can't figure it out, any advice would be awesome.
02:11 edrocks did you restart the master after updating the config?
02:12 _JZ_ can a state declaration use a module.run as a requisite ?
02:14 Smerg Yeah I restarted using pkill salt-master and starting it with salt-master -d, I am assuming that will reload the config?
02:22 writtenoff joined #salt
02:23 rhodgin joined #salt
02:24 dyasny joined #salt
02:37 DammitJim joined #salt
02:38 dthom91 joined #salt
02:41 edrocks_ joined #salt
02:42 wendall911 joined #salt
02:43 edrocks__ joined #salt
02:45 ageorgop joined #salt
02:45 tzero joined #salt
02:47 favadi joined #salt
02:53 GreatSnoopy joined #salt
02:54 knite joined #salt
03:00 twork joined #salt
03:01 twork i have a *lot* of states, and once in a while when i go to high state, i get a message saying that there were more changes than i expected.
03:02 twork paging through them all can take a long time, and i haven't been able to find a good way to search through the list when i don't already know what to expect.
03:03 twork is there a trick to tihs?
03:11 scoates_ joined #salt
03:12 otter768 joined #salt
03:13 dthom91 joined #salt
03:35 zmalone joined #salt
03:46 breakingmatter joined #salt
03:47 Smerg Just checking in to see if anyone has any ideas for me to try?
03:48 subsignal joined #salt
03:51 armyriad joined #salt
03:58 knite joined #salt
04:02 ageorgop joined #salt
04:06 DammitJim joined #salt
04:12 knite joined #salt
04:17 ageorgop joined #salt
04:21 mordonez joined #salt
04:26 ajw0100 joined #salt
04:38 jalaziz joined #salt
04:58 svinota joined #salt
04:59 markm_ joined #salt
04:59 bluemoon joined #salt
05:01 auzty joined #salt
05:04 anmolb joined #salt
05:05 basepi Ryan_Lane: nice, great catch!
05:06 anmolb joined #salt
05:06 clintberry2 joined #salt
05:07 opensource_ninja joined #salt
05:08 basepi Ryan_Lane: unfortunately, QA tagged internally for 2015.8.1 earlier today. I'll see if they'll be willing to push the tag a few commits. xD
05:12 _JZ_ joined #salt
05:14 stanchan joined #salt
05:22 otter768 joined #salt
05:24 jodv joined #salt
05:26 jodv joined #salt
05:29 mehakkahlon joined #salt
05:47 breakingmatter joined #salt
05:51 clintber_ joined #salt
05:52 felskrone joined #salt
05:59 TyrfingMjolnir joined #salt
06:06 colttt joined #salt
06:13 jalbretsen joined #salt
06:15 Bryson joined #salt
06:21 AndreasLutro joined #salt
06:26 elsmo joined #salt
06:32 John_Kang joined #salt
06:35 joe_n joined #salt
06:35 rdas joined #salt
06:37 jdesilet joined #salt
06:39 felskrone1 joined #salt
06:39 malinoff joined #salt
06:41 KermitTheFragger joined #salt
06:43 aristedes joined #salt
06:44 aristedes left #salt
06:45 evle joined #salt
06:47 GreatSnoopy joined #salt
06:48 felskrone joined #salt
06:56 irctc829 joined #salt
06:57 irctc829 hi guys. i have a problem with file.recurse. it doesn't want to create an empty directory. all other directories get created recursively but not the one which doesn't contain any file. anyone experienced the same? how do i fix that?
06:57 joe_n joined #salt
06:59 illern joined #salt
07:00 otter768 joined #salt
07:00 pezus joined #salt
07:01 pezus damn web client
07:01 pezus so again: hi guys. i have a problem with file.recurse. it doesn't want to create an empty directory. all other directories get created recursively but not the one which doesn't contain any file. anyone experienced the same? how do i fix that?
07:04 John_Kang does the salt provide the webUI with free ?
07:06 eseyman joined #salt
07:09 cberndt joined #salt
07:12 lb joined #salt
07:12 edulix joined #salt
07:13 svinota joined #salt
07:15 Grokzen joined #salt
07:16 kawa2014 joined #salt
07:21 fredvd joined #salt
07:25 cyborgIone joined #salt
07:30 denys joined #salt
07:32 blueyed Can salt.states.test (https://docs.saltstack.com/en/latest/ref/states/all/salt.states.test.html) be used directly with salt-call?  I want to check the return values of it.
07:33 blueyed Is --retcode-passthrough required for salt-call currently?
07:37 AndreasLutro pezus: you should open an issue/feature request for it
07:37 pezus AndreasLutro: i am not sure whether it is a problem on my end or if it "intended behaviour", honestly
07:38 traph joined #salt
07:38 pezus in this case, i also have to set a permission so i also have a file.directory statement which creates my directory but in general...
07:40 AndreasLutro pezus: regardless of whether it's intentional or not, it seems highly inconvenient
07:41 patchedmonkey joined #salt
07:43 msx joined #salt
07:45 patchedmonkey joined #salt
07:46 larsfronius joined #salt
07:51 pezus AndreasLutro: https://github.com/saltstack/salt/issues/1344
07:52 pezus it seems to be fixed, although it doesn't work for me, sadly
07:52 AndreasLutro well that's very very old
07:53 AndreasLutro if include_empty: true doesn't work then that's probably a buig
07:53 AndreasLutro bug*
07:58 pezus include_empty is the solution so it was my problem in the end
07:58 pezus but thanks for the reply!
07:58 Rumbles joined #salt
08:02 engblom joined #salt
08:02 s_kunk joined #salt
08:03 engblom On Debian Wheezy running salt-stack 2015.5.3, I suddenly begin to get: KeyError: 'file.sed'
08:03 engblom Nothing has been changed in my setup
08:05 engblom My sources.list entry is 'deb http://debian.saltstack.com/debian wheezy-saltstack main'
08:05 engblom It might be that this problem came with an 'apt-get dist-upgrade' but that is not sure.
08:06 engblom The problem appears when running 'salt-call state.highstate'
08:07 TyrfingMjolnir joined #salt
08:08 deus_ex joined #salt
08:09 thefish joined #salt
08:11 thalleralexander joined #salt
08:17 katyucha joined #salt
08:18 Xevian joined #salt
08:19 losh joined #salt
08:20 tinuva joined #salt
08:25 N-Mi joined #salt
08:27 impi joined #salt
08:29 CeBe joined #salt
08:29 chiui joined #salt
08:35 elsmo joined #salt
08:47 markm_ joined #salt
08:47 larsfronius joined #salt
08:59 CeBe joined #salt
09:04 malinoff joined #salt
09:09 fredvd joined #salt
09:23 lothiraldan joined #salt
09:24 eliasp the new x509 state is not usable with the Ubuntu packages from repo.saltstack.com: "You should upgrade pyOpenSSL to at least 0.14.1 to enable the use of X509 extensions"
09:24 eliasp I wonder whether it would be doable to ship an update to pyOpenSSL through repo.saltstack.com for Ubuntu…
09:24 briner I wrote some sls in python. How could I do to see the output of the module for a specific host.
09:24 eliasp s/Ubuntu/Ubuntu 15.04/g
09:25 eliasp briner: salt your-host state.show_low_sls your-python-SLS
09:28 zerth joined #salt
09:32 briner eliasp, waooh this is a good step to help me debugging it.
09:33 briner eliasp, do you know if we can use the pdb debugger inside this process.
09:34 larsfron_ joined #salt
09:35 malinoff joined #salt
09:41 lothiraldan joined #salt
09:42 artemz joined #salt
09:42 paolo joined #salt
09:44 bmcorser joined #salt
09:48 briner eliasp, waooh this is a good step to help me debugging it.
09:49 breakingmatter joined #salt
09:49 eliasp briner: for using the pdb debugger, you'd have to execute "salt-call state.show_low_sls your-python-SLS" right on the box…
09:50 eliasp and run this inside pdb or attach it to the salt-call process
10:01 markm_ joined #salt
10:08 giantlock joined #salt
10:14 CeBe joined #salt
10:17 av_ joined #salt
10:19 Rumbles joined #salt
10:22 nmo joined #salt
10:22 nmo hi all
10:34 joe_n joined #salt
10:46 Nazca joined #salt
10:47 ni291187 joined #salt
10:47 ni291187 hi all guys
10:48 ni291187 some nice idea to crack gmail (hydra IT s not good)
10:48 ni291187 i Can t sleep for this lol
10:49 ni291187 left #salt
11:05 felskrone joined #salt
11:05 felskrone1 joined #salt
11:08 joe_n joined #salt
11:09 felskrone joined #salt
11:14 bluenemo joined #salt
11:14 lb joined #salt
11:20 X67r joined #salt
11:25 pbrooko joined #salt
11:31 artemz joined #salt
11:31 breakingmatter joined #salt
11:37 Norrland Where can I find documentation regarding the "new style map.jinja" referenced in this commit? https://github.com/saltstack-formulas/docker-formula/commit/cb4b95b00b55dda3326c2529109a9baeaab3f01e
11:38 phpdave11 joined #salt
11:40 AndreasLutro Norrland: there is no documentation for it, it's just a community-set standard pattern
11:41 AndreasLutro it's brought up here I guess https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html#abstracting-static-defaults-into-a-lookup-table
11:43 TaiSHi joined #salt
11:44 babilen Our "new style" is, unfortunately, broken in that it doesn't merge recursively at https://github.com/saltstack-formulas/docker-formula/blob/master/docker/map.jinja#L37
11:45 babilen (so if you have differences in a deeply nested structured between the default and the pillar it won't get merged, but the entire (sub) tree will be overwritten by what came from the pillar)
11:46 lothiraldan joined #salt
11:46 babilen I guess we actually want to call https://github.com/saltstack/salt/blob/develop/salt/utils/dictupdate.py#L20 at that point
11:47 Norrland AndreasLutro: okey, couldn't find it when scrolling through it. Maybe I need to read a bit more closely.
11:48 Norrland babilen: ah okey
11:57 crashmag joined #salt
12:00 tmclaugh[work] joined #salt
12:08 viq joined #salt
12:15 Rumbles joined #salt
12:15 TyrfingMjolnir joined #salt
12:16 pbrooko joined #salt
12:17 rim-k joined #salt
12:30 jhauser joined #salt
12:39 parapov joined #salt
12:41 S_Walker joined #salt
12:46 dendazen joined #salt
12:48 favadi joined #salt
12:49 dthom91 joined #salt
12:49 DammitJim joined #salt
12:49 breakingmatter joined #salt
12:50 pfallenop joined #salt
12:52 subsignal joined #salt
12:54 pfallenop joined #salt
12:54 clintber_ joined #salt
12:58 lothiraldan joined #salt
12:58 dthom91 joined #salt
13:01 pm90_ joined #salt
13:02 pm90__ joined #salt
13:02 JDiPierro joined #salt
13:04 mapu joined #salt
13:06 rpx joined #salt
13:07 svinota joined #salt
13:08 racooper joined #salt
13:10 edrocks joined #salt
13:11 pm90_ joined #salt
13:12 tkharju joined #salt
13:13 robot9 /j #geeks
13:17 DanyC joined #salt
13:17 ponpanderer joined #salt
13:18 ponpanderer Silly question....upgrading a windows minion: will that overwrite existing keys/config and start fresh or leave them intact?
13:18 pm90__ joined #salt
13:18 ponpanderer (using default gui installer)
13:18 Xevian joined #salt
13:19 edrocks on ubuntu the update tries to overwrite the config but it asks you and it defaults to no
13:20 cyborg-one joined #salt
13:22 rhodgin joined #salt
13:24 mpanetta joined #salt
13:24 jalbretsen joined #salt
13:27 prashat joined #salt
13:27 prashat hi
13:27 perfectsine joined #salt
13:27 prashat hi
13:28 jdesilet joined #salt
13:31 pravka joined #salt
13:32 keltim joined #salt
13:35 protoz joined #salt
13:36 rpx joined #salt
13:37 Tecnico1931 joined #salt
13:41 dendazen If i have this error
13:41 dendazen UnicodeEncodeError: 'ascii' codec can't encode character u'\u2018' in position 229: ordinal not in range(128)
13:41 dendazen how can i find where the wrong charecter, which file and where?
13:41 teryx510 joined #salt
13:42 blueyed Is "salt-call --local pillar.get" aware of the Salt environment (via minion config)?
13:42 AndreasLutro dendazen: you could start with -l debug
13:43 kalessin joined #salt
13:44 dendazen i get the same thing
13:44 dendazen https://gist.github.com/anonymous/c5980373b38e972a7634
13:45 kaptk2 joined #salt
13:45 AndreasLutro well, Rendering SLS "base:selections.resolver"
13:45 dendazen never mind found it it is in here
13:45 dendazen ‘aur1'
13:45 dendazen different apostrophe
13:45 AndreasLutro indeed
13:46 AndreasLutro in the future maybe look up how to grep for non-ascii characters
13:46 dendazen yeah.
13:47 dendazen Thank you, i have another question as well
13:48 JDiPierro joined #salt
13:48 dendazen https://gist.github.com/anonymous/26c616c09080d1cd2353
13:48 dendazen I outlined the question in the gist, if anyone could look it up
13:48 dendazen Thank you
13:48 afics joined #salt
13:49 tanta_g joined #salt
13:50 dendazen Aslo with that state i get an error
13:50 dendazen as this
13:50 dendazen https://gist.github.com/anonymous/bd85c1a2390516d9b9d2
13:51 babilen A ' is at the wrong place in "salt['grains.get]'("
13:52 babilen salt['grains.get'] is what you want
13:52 dendazen oh
13:52 JDiPierro dendazen: It looks like your "searchpath" variable is just chi1, so you'll want to either change that in the pillar or change the template on line 29 to have {{ searchpath }}.veliosystems.com
13:53 babilen And why do you define defaults there ?
13:53 dendazen it is only chi1 you are correct.
13:53 dendazen oh that would work, thanks
13:54 dendazen these small things could not see myself after creating the state, was looking for an hour what’s going on
13:54 TheoSLC joined #salt
13:54 andrew_v joined #salt
13:54 sroegner joined #salt
13:55 babilen I would recommend against defining values/defaults/settings in too many places. You would like to use a single place for that or use a defined and understood pattern such as the default/pillar/... one used for formulas
13:55 dendazen yeah, we are thinking about it.
13:56 dendazen we have _contexts folder
13:57 babilen What's that?
13:57 zmalone joined #salt
13:57 dendazen where we are trying to create list of default variables, locations and server types
13:57 babilen .oO( When did 'folder' replace 'dictionary' in technical discussions? )
13:57 dendazen we also started using utilizing salt-pillars
13:57 babilen err
13:57 babilen directory
13:58 babilen I am not familiar with a _contexts directory, do you have a link to some documenation about it?
13:58 dendazen no, i just created in my salt-states directory.
13:59 dendazen sorry about ‘folder’ reference.
13:59 babilen ah
13:59 babilen no problem
13:59 dendazen not native english speaker
13:59 babilen No, it's fine. I was quite genuinely curious
13:59 bhosmer joined #salt
14:01 AndreasLutro directory is harder to type!
14:02 babilen Yeah, I know what you mean. I seem to type "dictionary" whenever I try it ;)
14:04 sroegner joined #salt
14:10 kawa2014 joined #salt
14:11 _JZ_ joined #salt
14:13 dthom91 joined #salt
14:15 rburkholder joined #salt
14:18 Akhter joined #salt
14:18 kevinqui1nyo joined #salt
14:19 Newbie_2015 joined #salt
14:19 scoates Ryan_Lane: you don't have states for setting up CloudFront, do you?
14:19 kevinqui1nyo salt.states.pkgrepo keeps appending to /etc/apt/sources.list.d/my-repo.list -- Is there an option to make it work more like file.append where it will only add the deb ... line if it doesnt already exist?
14:19 clintberry2 joined #salt
14:19 Akhter joined #salt
14:20 Brew joined #salt
14:20 svinota joined #salt
14:21 whidbeywalker joined #salt
14:21 rpx joined #salt
14:22 winsalt_ joined #salt
14:22 babilen kevinquinnyo: It shouldn't keep on appending if the repository has already been configured. Could you paste your state and the outcome to one of http://refheap.com, http://paste.debian.net, https://gist.github.com, http://sprunge.us, http://dpaste.de, … ?
14:23 JDiPierro babilen: Lol do you have that list stored somewhere or do you type it out every time? :P
14:23 babilen The former
14:24 babilen "pbin<TAB>"
14:24 kevinquinnyo https://gist.github.com/kevinquinnyo/3dfdd689bfc748b4dc19 babilen
14:24 kevinquinnyo let me know if you need to see the includeded varnish.config for any reason
14:25 kevinquinnyo it shouldnt matter though
14:25 babilen "dist: trusty" vs "precise varnish-4.0"
14:25 kevinquinnyo oh well that is a problem isnt it
14:25 malinoff joined #salt
14:25 tanta_g joined #salt
14:26 kevinquinnyo babilen: thanks I guess that's probably why it's not detecting  it as existing as well
14:26 babilen And you might need that to be "name: deb https://repo.varnish-cache.org/ubuntu/ precise" and set "comps: varnish-4.0"
14:26 kevinquinnyo ok
14:26 babilen Or "name: deb https://repo.varnish-cache.org/ubuntu/ precise varnish-4.0" (but still set comps)
14:26 berserk joined #salt
14:26 perfectsine joined #salt
14:27 babilen Give those things a try and your problem should be solved. Fixing the trusty/precise problem should take care of it though
14:27 kevinquinnyo thanks a lot babilen
14:28 TheoSLC joined #salt
14:28 breakingmatter joined #salt
14:30 cpowell joined #salt
14:32 Brew joined #salt
14:35 babilen kevinquinnyo: I remember that you give only one component in the "name" attribute (as in "deb htt.... main"), but specify all in "comps: main contrib non-free"
14:36 dthom91 joined #salt
14:40 favadi joined #salt
14:47 kawa2014 joined #salt
14:48 DanyC joined #salt
14:48 ageorgop joined #salt
14:49 felskrone joined #salt
14:51 moogyver joined #salt
14:52 giantlock joined #salt
14:53 malinoff joined #salt
14:56 zmalone joined #salt
14:57 dfinn joined #salt
14:57 si289 Anyone know why salt takes an absolute ages to start? running salt '*' state.apply <blah> takes 15-20s to start, then the tasks complete in less that a second
14:58 zmalone A Salt master isn't connecting to clients and issuing commands to them.
14:58 si289 eg https://paste.fedoraproject.org/273649/14437115/
14:58 zmalone It is putting commands in a queue, and waiting for the clients to connect to it, pull the commands, run them, and then put the response back in the queue.
14:59 zmalone (unless you are doing tornado etc.)
14:59 si289 ahhh
14:59 zmalone So if a client doesn't respond, you don't know if it is because the client is still running, never connected, is down, etc.
15:00 Ashcroft joined #salt
15:00 si289 thought something was going awry, judging by how fast  Colton Myers's demo worked in PyCon '15 lol
15:03 zwi joined #salt
15:04 bhosmer joined #salt
15:07 bhosmer joined #salt
15:07 zmalone Something may also be going wrong, someone reported a issue yesterday with targeting "*" taking way longer on 2015.8 then it did in prior versions.
15:11 kawa2014 joined #salt
15:15 jay_d_ joined #salt
15:16 si289 hmm ok, will keep an eye on the thread, cheers zmalone
15:19 edulix joined #salt
15:21 conan_the_destro joined #salt
15:22 pravka joined #salt
15:23 favadi joined #salt
15:25 jay_d joined #salt
15:26 jeadre joined #salt
15:27 zma joined #salt
15:28 mapu joined #salt
15:29 mohae joined #salt
15:29 msx joined #salt
15:29 RedundancyD joined #salt
15:30 zma I need to run some state files from custom folder, how can I specify root_dir in my salt state call inline?
15:31 perfectsine joined #salt
15:32 alemeno22 joined #salt
15:33 ajw0100 joined #salt
15:35 Zachary_DuBois joined #salt
15:37 anotherZero joined #salt
15:39 monkeybox joined #salt
15:41 Luke_ joined #salt
15:45 markm_ joined #salt
15:46 dthom91 joined #salt
15:46 tomspur joined #salt
15:47 sbogg joined #salt
15:49 edrocks does salt need port 4949 open?
15:49 zmalone Not by default?
15:49 zmalone https://docs.saltstack.com/en/latest/topics/tutorials/firewall.html
15:49 favadi joined #salt
15:49 zmalone It should be 4505 / 4506 to the server only.
15:49 edrocks it keeps showing up in my firewall. But I never turned munin on
15:51 monkeybox joined #salt
15:52 SheetiS joined #salt
15:59 bhosmer joined #salt
16:00 stanchan joined #salt
16:01 zma anyone has example how to use state modules localconfig?
16:02 JDiPierro joined #salt
16:03 RedundancyD joined #salt
16:04 pcn I'm very confused.  I'm using the API with 2015.5.3 (ubuntu packages) to try to start a state run. If I have a pepper api object, I can run a pillar.items with pillar data in the kwarg, but I can't run a state.sls - it says that the pillar can't render?
16:04 monkeybox joined #salt
16:06 jalbretsen joined #salt
16:06 ferbla joined #salt
16:07 fivehole joined #salt
16:07 Ahlee pcn: hold for example
16:09 pcn https://gist.github.com/pcn/6f8b244256f0974f1683
16:10 Ahlee arg is a list, you're right there
16:11 Ahlee pass the pillar value in as an arg
16:11 zma If root_dir is /srv/salt and I call top.sls from /srv/salt/abc, how can I make top.sls point to other state files under /srv/salt/abc instead of /srv/salt ?
16:11 Ahlee arg = [ 'cassandra.config_files', "pillar={'seed_list':'1,2,3'}]
16:12 Utnap left #salt
16:13 moogyver joined #salt
16:14 Joe___ joined #salt
16:14 fivehole zma: if you mean /srv/salt/abc/def.sls      would be abc.def in top
16:14 pcn Ahlee: Same error
16:14 Joe___ After I install the salt on Enterprise suse linux and install the salt with bootstrap.
16:14 Ahlee zma: Pretty sure environments are what you're looking like
16:15 Ahlee er, s/like/for/
16:15 nadley joined #salt
16:15 Joe___ and run sudo salt-call state.highstate -l debug
16:15 pcn Ahlee: I've updated the gist; and added the example of using pillar.items
16:16 Joe___ it shows 2015-10-01 12:05:24,542 [salt.loader      ][DEBUG   ][19946] Error loading module.ifttt: IFTTT Secret Key Unavailable, not loading. 2015-10-01 12:05:24,699 [salt.loader      ][DEBUG   ][19946] Error loading module.ipmi: No module named pyghmi.ipmi 2015-10-01 12:05:24,760 [salt.loader      ][DEBUG   ][19946] Error loading module.victorops: No VictorOps api key found. 2015-10-01 12:05:26,562 [salt.loader      ][ERROR   ][19946]
16:16 zma fivehole, Ahlee: Thanks, I agree with your comments. Let me see if I have stumbled with something else and I'll clarify my question after a small experiment.
16:17 Ahlee pcn: i'll toss how we do it up in a gist, sanitizing
16:20 twork n00b issue here. i have a minion with lots of entries, and sometimes when going to highstate i'll get an error that i didn't expect. but, paging back through all that output without knowing what to grep for is impractical, and i don't think there's anything about an error message that's predictable to search for. is there some better place to look for this sort of thing?
16:20 dthom91 joined #salt
16:21 Ahlee pcn: https://gist.github.com/jalons/8e79429ff30b99759f2f
16:21 aparsons joined #salt
16:23 cpowell_ joined #salt
16:23 Ahlee twork: You can modify the output with an outputter, or --state-output=terse
16:23 Ahlee twork: https://docs.saltstack.com/en/latest/ref/output/all/salt.output.highstate.html#outputter-for-displaying-results-of-state-runs
16:23 Ahlee i usually run with changes
16:23 twork aha, that'll help, thanks
16:24 Ahlee twork: we also dump all return values into a returner, and i make sure to specify -v to get the JID
16:24 zma Ahlee: I will definitely need environments, but I also need to have a custom folder for each deployment, and all state files and salt:// paths relative to that, and only way I think how it can be done in theory is to give custom root_dir for each call, but I can't figure out how to do it
16:24 Ahlee then I can search the JID
16:24 twork ..."returner"? is that something i'll learn when i follow that url?
16:25 Ahlee zma: With environments, your file_roots map to directories based on the name, so saltenv=Foo will use the file_root defined in Foo
16:25 Ahlee twork: if only it was that easy
16:25 XenophonF twork: i use grep + suitable settings for before/after context
16:25 Ahlee twork: https://docs.saltstack.com/en/latest/ref/returners/
16:26 maduro joined #salt
16:26 zma Ahlee: can I give the relative directory with pillar data to the top.sls, as I can't hardcode the folder as it keeps changing
16:26 dfinn joined #salt
16:27 cliluw joined #salt
16:27 twork XenophonF: if i read you correctly: if i knew what suitable settings are the problem, i'd find them by paging back in my termainal. ...but that makes me think i'm missing your meaning.
16:27 mohae joined #salt
16:27 edrocks does saltstack use munin for anything?
16:27 Ahlee twork: salt ships with a bunch by default, and it just shoves the results in there for your consumption. We use the mongodb returner, so all jobs get inserted in there. We then have jobs configured to search through it to look for returns where Result: does not equal True
16:27 pcn Ahlee: are you intending to pass in json as the arguments there?
16:28 cpowell joined #salt
16:28 Ahlee pcn: if memory serves it just needs to be a valid dict
16:28 XenophonF twork: in addition to the output control options Ahlee mentioned, i tend to pipe the output of the salt/salt-call commands to tee and then sort through the log file using grep
16:29 zma Ahlee: currently I can't use top.sls, I can have a script that calls one state file at a time from it's custom directory, and I have a wrapper like: salt $1 state.sls $3/$2 pillar='{"'"$2"'-dir": "'"$3"'"}' and then I let all state files use this dynamically defined directory. There must be a better way.. :(
16:29 pcn Ahlee: I was wondering about the quoting for the "pillar={..."
16:29 pcn Ahlee: but you're saying it'll get eval()'d?
16:29 Ahlee pcn: Yeah, I don't recall why that was required. Maybe it is just passing it through. I wrote this long ago, shoved it into a helper method, and have just been calling that for a year now
16:30 twork thanks guys. gives me plenty to look at.
16:30 Ahlee i don't think it's json, given the ' vs "
16:31 XenophonF twork: so for example, given a failed state in salt.log, I'll use something like `grep -B 10 -A 10 "Result: False" salt.log`
16:31 pcn I was wondering about that.  What's killing me here is that passing it in via kwarg worked for me until about 2 hours ago.
16:31 kevinquinnyo is there anything strange i should know about when using a "require" requisite for a git.latest state?  It seems to be completely ignoring my require -- i also tried switching to require_in in the dependency state
16:33 NachoDuck joined #salt
16:33 kevinquinnyo nevermind that -- just noticed i had a typo on the path.  looks like it was working
16:34 XenophonF twork: other structured output modes might be better, e.g., json, where you can programmatically query the output data, but that depends on how comfortable you are with programming. usually grep -A... -B... or skimming through `less salt.out` with '/Result: False' is good enough for me
16:34 writtenoff joined #salt
16:34 Ahlee pcn: sorry man, i got nothing else =\
16:34 Kelsar Hi, I got a problem with salt-2015.8.0 on gentoo, i can't install some packages with a package state, I reduced it to one simple state: http://dpaste.com/2F0YG43 this won't work for me.
16:34 pcn Ahlee: that's super helpful
16:34 Kelsar calling pkg.install app-vim/ctrlp works fine so
16:35 Ahlee i've saved your examples off and will look at this tonight
16:35 Ahlee see if i can reproduce and figure out if the issue is in pepper or the netapi module
16:36 Kelsar Kelsar: other packages work ofc
16:37 Bryson joined #salt
16:38 pcn Weird - the highstate ran with pillar data.  Can the state being run have an effect on the pillar render?
16:40 jodv joined #salt
16:40 rpx joined #salt
16:41 _JZ_ joined #salt
16:44 Lionel_Debroux_ joined #salt
16:46 bhosmer joined #salt
16:46 dfinn1 joined #salt
16:46 zma salt 'minion1' state.highstate root_dir=/srv/salt/abc <-- how to define root_dir here or any other way to make salt find top file from given folder without modifying /etc/salt/master ?
16:46 hasues joined #salt
16:47 is_null joined #salt
16:47 is_null hi all, how do i know if a minion was accepted in the master, from the minion (to avoid flooding reactor) to do a highstate ?
16:48 hasues left #salt
16:50 monkeybox joined #salt
16:52 druonysus joined #salt
16:52 ageorgop joined #salt
16:55 Ashcroft joined #salt
16:56 is_null would something like `until salt-call test.ping; do sleep 5; done; salt-call --retcode-passthrough state.highstate` or something like that work ?
16:56 lumtnman joined #salt
16:57 BERNARD joined #salt
16:58 Ashcroft Can somebody explain me the mechanics of building pillar data on a minion-less client when using salt-ssh? The same custom state-module has access to different pillar data depending on the way its called ( per state.sls file or per execution command via state.single ) :-(
17:04 hal58th joined #salt
17:04 aparsons joined #salt
17:06 viq joined #salt
17:07 murrdoc joined #salt
17:07 Dev0n joined #salt
17:08 breakingmatter joined #salt
17:10 Fiber^ joined #salt
17:11 TooLmaN joined #salt
17:13 tanta_g joined #salt
17:14 rpx joined #salt
17:19 invalidexception joined #salt
17:21 Akhter joined #salt
17:22 markm_ joined #salt
17:23 forrest joined #salt
17:24 Rumbles joined #salt
17:25 cpowell joined #salt
17:26 dthom91 joined #salt
17:27 DanyC joined #salt
17:28 NV joined #salt
17:29 aparsons joined #salt
17:30 zerthimon joined #salt
17:30 aparsons joined #salt
17:30 GreatSnoopy joined #salt
17:36 aw110f joined #salt
17:39 tmkerr I'm trying to debug some custom grains I've created.. How can I  get a single grain from only one minion?
17:39 nofxrok joined #salt
17:40 tmkerr I don't want to have to get the grains from all minions, and I don't want to list all grains of a single minion... just one grain from one minion
17:41 tristianc joined #salt
17:42 iggy tmkerr: salt 'minion' grains.get foo
17:42 iggy tmkerr: (locally on the minion) salt-call grains.get foo
17:42 murrdoc joined #salt
17:42 tmkerr thanks
17:45 Akhter joined #salt
17:46 pjs left #salt
17:46 mehakkahlon joined #salt
17:46 breakingmatter joined #salt
17:47 druonysuse joined #salt
17:47 druonysuse joined #salt
17:47 pjs joined #salt
17:48 aparsons joined #salt
17:49 saffe joined #salt
17:50 rpx joined #salt
17:55 druonysuse joined #salt
17:55 druonysuse joined #salt
17:56 dthom911 joined #salt
17:57 rpx joined #salt
17:58 denys joined #salt
18:00 bhosmer joined #salt
18:01 knite_ joined #salt
18:01 hasues joined #salt
18:01 hasues left #salt
18:03 CheKoLyN joined #salt
18:05 teryx510 joined #salt
18:05 Ashcroft joined #salt
18:11 baweaver joined #salt
18:13 jmickle joined #salt
18:13 jmickle hi is there a way to tell service.restart to use init.d script instead of upstart?
18:14 andrew_v_ joined #salt
18:15 breakingmatter joined #salt
18:15 Ahlee jmickle: doesn't look like it: https://github.com/saltstack/salt/blob/develop/salt/modules/debian_service.py#L35
18:16 jmickle dam
18:16 Ahlee cmd.run is go!
18:16 jmickle well we are doing this from python scripts
18:16 jmickle and moving from upstart to init.d
18:16 jmickle for celery workers
18:16 jmickle cause upstart introduces a number of other issues for it
18:16 Ahlee right, instead of calling service.restart, run cmd.run /etc/init.d/service restart
18:17 jmickle ok
18:17 jmickle :-/
18:17 jmickle ty
18:17 mapu_ joined #salt
18:17 jalaziz joined #salt
18:18 Ahlee *shrug* it's not like service.restart has magic :) it does the same thing in the end
18:19 murrdoc joined #salt
18:23 ajw0100 joined #salt
18:25 baweaver joined #salt
18:25 ALLmightySPIFF joined #salt
18:25 jmickle yeah i know
18:26 jmickle just the pain of calling differently from the already poorly abstracted Salt() object
18:26 jmickle :-P
18:26 kevinquinnyo is there any way to magically view a tree of dependencies in a salt base?
18:26 kevinquinnyo based on states requiring other states through requisites?
18:27 dayid joined #salt
18:32 hasues joined #salt
18:32 hasues left #salt
18:33 keltim joined #salt
18:35 larsfronius joined #salt
18:37 dthom911 left #salt
18:41 whytewolf kevinquinnyo: you mean like https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.state.html#salt.modules.state.show_highstate
18:41 whytewolf not really a tree. but shows the order of things
18:46 kevinquinnyo whytewolf: thanks i'll take a look
18:51 msx joined #salt
18:53 knite joined #salt
18:55 cberndt joined #salt
19:03 jorb left #salt
19:08 Nazzy joined #salt
19:09 perfectsine joined #salt
19:11 invalidexception joined #salt
19:12 rpx joined #salt
19:20 TomJepp joined #salt
19:20 TheoSLC joined #salt
19:26 tkharju joined #salt
19:26 dthom911 joined #salt
19:29 baweaver joined #salt
19:31 giantlock joined #salt
19:33 tanta_g joined #salt
19:33 roomie76 joined #salt
19:34 rim-k joined #salt
19:36 chiui joined #salt
19:40 patchedmonkey joined #salt
19:42 baweaver joined #salt
19:44 mohae_ joined #salt
19:47 knite joined #salt
19:49 pbrooko joined #salt
19:55 pm90_ joined #salt
19:55 mapu joined #salt
19:55 JDiPierro I'm trying to add a pkgrepo and I noticed the documentation says "GPG key"... but the key this repo provides is a "PGP key"... So I'm getting "GPG error: http://dl.bintray.com  Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9149B0A6173454C7". Is this doable with pkgrepo.managed?
19:56 pm90__ joined #salt
19:56 zmalone gpg and pgp keys are interchangable
19:56 zmalone the complaint is over you not having the pub key for that repo installed
19:57 JDiPierro I put the url in keyurl on pkrepo.managed, is that not the correct place?
19:58 JDiPierro ohhh key_url, nm
19:58 gladiatr joined #salt
19:58 pbrooko joined #salt
19:59 ahammond how do I call a custom module from within a custom grain? I'm getting "NameError: global name '__salt__' is not defined"
19:59 JDiPierro Yep, that did it. Thanks zmalone
19:59 dfinn joined #salt
20:01 patchedmonkey joined #salt
20:05 pravka joined #salt
20:06 opensource_ninja joined #salt
20:07 pbrooko joined #salt
20:10 jmickle joined #salt
20:11 iggy ahammond: gist?
20:12 ahammond aaaaaahhhh https://github.com/saltstack/salt/blob/develop/salt/grains/core.py
20:12 ahammond just gotta import the module directly. :)
20:12 pm90_ joined #salt
20:12 sjorge joined #salt
20:12 sjorge joined #salt
20:14 DammitJim joined #salt
20:15 falenn joined #salt
20:16 lpmulligan joined #salt
20:17 pm90__ joined #salt
20:23 Sketch anyone know how to create a user with no password with user.present?
20:24 Sketch tried setting the password to !!, blank, using empty_password, but nothing seems to work...
20:24 bhosmer joined #salt
20:25 bhosmer joined #salt
20:28 jmickle is there a way to see what states a server will run from the salt command line?
20:29 baweaver joined #salt
20:30 murrdoc joined #salt
20:31 edrocks joined #salt
20:31 tmkerr anyone know where I should look if:
20:31 tmkerr salt-call grains.get 'foo'
20:31 tmkerr works on the minion but a
20:31 tmkerr salt 'minion' grains.get 'foo'
20:31 tmkerr returns nothing on the master when trying to get a grain I've written?
20:34 cberndt joined #salt
20:34 jalaziz_ joined #salt
20:34 CheKoLyN sometimes you have to restart the salt-minion service to get the grains
20:37 CeBe joined #salt
20:37 Sketch aha, not setting password at all works.  i tried that, but since i already had the user created it wasn't doing anything
20:37 rhodgin joined #salt
20:42 knite joined #salt
20:42 mpanetta_ joined #salt
20:43 mpanetta_ joined #salt
20:43 baweaver joined #salt
20:44 marcinkuzminski joined #salt
20:50 Ahlee anybody know off hand what populates __opts__ for runners?
20:50 dendazen joined #salt
20:51 Ahlee specifically I'm looking at if I can override the timeout setting in https://github.com/saltstack/salt/blob/develop/salt/runners/manage.py#L46
20:51 Ahlee it works from the cli, but not through netapi
20:51 Ahlee so i want to find where the cli populates low state to verify netapi does the same
20:52 iggy tmkerr: saltutil.refresh_pillar ?
20:54 JDiPierro joined #salt
20:57 TyrfingMjolnir joined #salt
20:58 subsignal joined #salt
20:58 pcn So, whatever issue I was having with my salt-master and api before, I can just use the kwarg again.
20:58 pcn killed the test saltmaster, and re-launched a new one
20:59 Rumbles joined #salt
21:02 pm90_ joined #salt
21:04 Ahlee pcn: that's frustratingly awesome
21:16 andrew_v joined #salt
21:18 wych joined #salt
21:20 murrdoc thoughts on killing all jobs
21:21 alemeno22 joined #salt
21:22 iggy murrdoc: with fire, or no?
21:22 iggy your food is here btw
21:22 murrdoc oh fuck yeah
21:22 rpx i want food. and job.
21:23 zmalone https://github.com/saltstack/salt/issues/27067 is terrible
21:23 zmalone all of pkgrepo.managed seems untrustworthy on Debian oses
21:23 zmalone Debian comments out a bunch of repos in sources.list as examples, so if you want to add one of those repos, salt sees the line, and assumes it is already added, and moves on
21:23 zmalone disregarding the # at the start
21:24 iggy pkgrepo has it's warts for sure
21:26 zmalone I checked, and it looks like everyone else on this project uses "cmd.run add-apt-repository" and stuff like that.
21:26 zmalone which gets a little tricky for repos that are not ppa format, because you end up doing file appends or "echo foo > /etc/apt/…"
21:26 zmalone (if anyone else runs into this)
21:27 subsignal joined #salt
21:29 druonysus joined #salt
21:29 druonysus joined #salt
21:29 Twiglet anyone klnow why my counter isn't working here? http://www.hastebin.com/liboyekela.mel
21:29 jay__ joined #salt
21:30 subsignal joined #salt
21:32 Twiglet wait, i am an idiot
21:32 Twiglet :D
21:33 tristianc joined #salt
21:36 invalidexception joined #salt
21:37 knite joined #salt
21:39 SheetiS joined #salt
21:41 joe_n joined #salt
21:45 opensource_ninja joined #salt
21:49 iggy zmalone: you can add non-ppa repo's with add-apt-repository (slightly better than echo, but maybe slightly worse than file.append)
21:50 zmalone file.append says it searches for a string before continuing, so that may have the same logical flaw
21:51 iggy it should search for the exact string (i.e. not #<string>)
21:51 iggy but I can't verify that atm
21:51 zmalone but how about # <string>$
21:51 zmalone I'll check tomorrow
21:51 zmalone apt-add-repository doesn't seem to work for full "deb http://archive.ubuntu.com/ubuntu trusty-backports main universe" format, at least in the online docs
21:51 zmalone those recommend just straight adding the line to your sources files
21:52 zmalone but yeah, we're doing cmd.run apt-add-repository for ppa format repos
21:52 iggy it shows in the -h output
21:52 iggy also untested
21:58 murrdoc1 joined #salt
21:58 ajw0100 joined #salt
22:01 cberndt joined #salt
22:01 patchedmonkey joined #salt
22:02 invalidexception joined #salt
22:03 larsfronius joined #salt
22:05 ThomasJ joined #salt
22:06 baweaver joined #salt
22:06 fivehole joined #salt
22:06 tmkerr how can I set the a minion to have the most verbose logging possible for debugging?
22:06 tmkerr log_level: trace
22:06 tmkerr log_level_logfile: trace
22:07 tmkerr is what I have so far
22:07 SaltyCharles joined #salt
22:07 fivehole salt-call -l trace <command>
22:08 tmkerr can I do that on the master as well?
22:08 tmkerr the problem I have is that the salt-call command works as expected
22:08 tmkerr but the call from the master does not
22:09 fivehole I don’t think the trace log from the minion is pushed back to the master.
22:09 tmkerr for instance salt-call grains.get 'foo' works
22:10 tmkerr salt 'minion' grains.get 'foo' doesn't
22:10 tmkerr k that worked thanks
22:12 rpx joined #salt
22:14 markm joined #salt
22:14 fridder joined #salt
22:17 conan_the_destro joined #salt
22:19 yac joined #salt
22:19 yac How do I edit ini files?
22:20 tesaf very carefully?
22:22 iggy augeas?
22:25 klocek joined #salt
22:25 superseb joined #salt
22:26 conan_the_destro joined #salt
22:44 ajw0100 joined #salt
22:45 drawsmcgraw left #salt
22:46 breakingmatter joined #salt
22:46 kevinquinnyo pkg.installed is returning false for a package, but it is installing it properly.  anyone know what i can do to troubleshoot why salt seems to be detecting a non-zero exit status or whatever it's doing to think it failed?
22:47 iggy kevinquinnyo: check issues?
22:47 kevinquinnyo iggy: ?
22:47 kevinquinnyo sorry what does that mean
22:47 kevinquinnyo issues in github?
22:48 iggy I seem to remember there being an issue in the SaltStack tracker about this
22:50 Twiglet Anyone seen salt not start upstart services (service.running) if they have been stoppeed manually between highstates?
22:52 kevinquinnyo iggy: i wonder if this is why
22:52 kevinquinnyo # service varnish start 2>&1 > /dev/null; echo $?
22:52 kevinquinnyo 1
22:53 codehotter joined #salt
22:53 kevinquinnyo varnish was already started and the init script returns 1 for that
22:53 kevinquinnyo that's not supposed to happen -- at least other standard init scripts return 0 there
22:56 jmreicha_ joined #salt
22:59 baweaver joined #salt
23:01 murrdoc joined #salt
23:01 bfoxwell joined #salt
23:03 johnkeates joined #salt
23:03 jodv joined #salt
23:06 jodv joined #salt
23:09 murrdoc joined #salt
23:14 whytewolf kevinquinnyo: that very well could be why. I used to see a cron init script do that. a long time ago
23:14 TheoSLC joined #salt
23:16 kevinquinnyo whytewolf: yeah it's a broken init script -- they reversed the exit status
23:16 kevinquinnyo https://www.varnish-cache.org/trac/ticket/1680
23:16 kevinquinnyo similar to that, not fixed upstream apparently in the ubuntu packages at least
23:22 murrdoc joined #salt
23:29 godber joined #salt
23:29 godber left #salt
23:29 ahammond I have a custom module. When I try to execute it, I get NameError: name '__pillar__' is not defined... however https://docs.saltstack.com/en/2015.5/topics/development/dunder_dictionaries.html says it should be available in execution modules... ?
23:29 ajw0100 joined #salt
23:31 Akhter joined #salt
23:34 iggy ahammond: gist
23:34 ahammond syncthing_api_key_header = {'X-API-Key': __pillar__['syncthing']['lookup']['apikey']}
23:35 ahammond this is in the module's global context
23:35 iggy yeah, can't do that
23:35 ahammond aaaaaah, ok.
23:35 ahammond so... stick it in a function?
23:35 iggy can't use the dunder dicts in gloabl context or __virtual__
23:35 iggy correct
23:36 aristedes joined #salt
23:36 aristedes left #salt
23:36 ahammond thanks, iggy!
23:40 murrdoc1 joined #salt
23:42 murrdoc joined #salt
23:43 msx joined #salt
23:44 pravka joined #salt
23:47 breakingmatter joined #salt
23:48 murrdoc joined #salt
23:55 ahammond iggy: that didn't solve things: https://gist.github.com/ahammond/5d78b8a7362baf5ef804
23:55 ahammond iggy: apparently I'm blind today.

| Channels | #salt index | Today | | Search | Google Search | Plain-Text | summary